package com.zhongwang.business.module.estimateBudgetAccountingManage.dao;

import com.zhongwang.business.gen.entity.*;
import com.zhongwang.business.module.estimateBudgetAccountingManage.model.*;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * @className AccountingDao
 *  核算持久层
 * @author 徐一贺
 * @date 2020/9/15 8:24
 * @version 1.0
      */
@Repository
public interface AccountingDao {

    /**
     *  findAccountingProjectListByCriteria
     *  根据查询条件检索待核算查询列表
     * @param param 查询条件
     * @return AccountingProjectModel 查询结果
     * @author 徐一贺
     * @date 2020/9/15 9:43
     * @version 1.0
          */
    List<AccountingProjectModel> findAccountingProjectListByCriteria(AccountingProjectModel param);
    /**
     *  findAccountingProjectListByCriteriaFroQueryList
     *  根据查询条件检索核算查询列表
     * @param param 查询条件
     * @return AccountingProjectModel 查询结果
     * @author 徐一贺
     * @date 2020/9/15 9:43
     * @version 1.0
          */
    List<AccountingProjectModel> findAccountingProjectListByCriteriaFroQueryList(AccountingProjectModel param);
    /**
     *  findBusBudgetAccountingBasicInfoConfigList
     *  依据单据表主键获取参数列表
     * @param batId 单据表主键
     * @return java.util.List<com.zhongwang.business.gen.entity.BusBudgetAccountingBasicInfoConfig> 结果
     * @author 徐一贺
     * @date 2020/10/7 10:17
     * @version 1.0
          */
    List<BusBudgetAccountingBasicInfoConfig> findBusBudgetAccountingBasicInfoConfigList(Integer batId);

    /**
     *  updateBusBudgetAccountingBasicInfoConfigValueByPrimaryKey
     *  依据主键更新基础信息配置的值
     * @param busBudgetAccountingBasicInfoConfig 参数
     * @return int
     * @author 徐一贺
     * @date 2020/10/7 14:02
     * @version 1.0
          */
    int updateBusBudgetAccountingBasicInfoConfigValueByPrimaryKey(BusBudgetAccountingBasicInfoConfig busBudgetAccountingBasicInfoConfig);

    /**
     *  updateBusBudgetAccountingCostTextureByPrimaryKey
     *  保存材质
     * @param params 参数
     * @author 徐一贺
     * @date 2020/10/8 13:41
     * @version 1.0
          */
    void updateBusBudgetAccountingCostTextureByPrimaryKey(BusBudgetAccountingCost params);

    /**
     *  getBusBudgetAccountingTaskModel
     *  根据主键获取单据表信息
     * @param param 参数
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingTaskModel
     * @author 徐一贺
     * @date 2020/10/26 18:45
     * @version 1.0
     */
    BusBudgetAccountingTaskModel getBusBudgetAccountingTaskModel(BusBudgetAccountingTaskModel param);

    /**
     *  findBusBudgetAccountingCost
     *  根据batId获取清单列表
     * @param param 参数
     * @return java.util.List<com.zhongwang.business.gen.entity.BusBudgetAccountingCost>
     * @author 徐一贺
     * @date 2020/10/26 18:48
     * @version 1.0
     */
    List<BusBudgetAccountingCost> findBusBudgetAccountingCost(BusBudgetAccountingTaskModel param);

    /**
     *  getMatFeeByCondition
     *  根据条件获取材料费
     * @param mechanicalPartMatFeeCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/26 19:14
     * @version 1.0
     */
    BigDecimal getMatFeeByCondition(BusMaterialDataModel mechanicalPartMatFeeCondition);



    /**
     *  getBusBudgetAccountingCostByCondition
     *  根据条件获取成本项
     * @param busBudgetAccountingCostCondition 条件
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2020/10/26 19:34
     * @version 1.0
     */
    BusBudgetAccountingCost getBusBudgetAccountingCostByCondition(BusBudgetAccountingCost busBudgetAccountingCostCondition);

    /**
     *  updateBusBudgetAccountingCostSelectiveByParamyKey
     *  选择性更新成本项表数据
     * @param mechanicalPartMatFeeCostItem 更新内容
     * @return int
     * @author 徐一贺
     * @date 2020/10/26 19:39
     * @version 1.0
     */
    int updateBusBudgetAccountingCostSelectiveByPrimaryKey(BusBudgetAccountingCost mechanicalPartMatFeeCostItem);

    /**
     *  getBusBudgetAccountingBasicInfoConfigModelByCondition
     *  根据参数获取基础信息
     * @param config 基础信息配置
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/26 20:38
     * @version 1.0
     */
    BigDecimal getBusBudgetAccountingBasicInfoConfigModelByCondition(BusBudgetAccountingBasicInfoConfigModel config);

    /**
     *  getProjectByCode
     *  根据项目号获取项目信息
     * @param proCode 项目号
     * @return com.zhongwang.business.gen.entity.VwProject
     * @author 徐一贺
     * @date 2020/10/26 20:49
     * @version 1.0
     */
    VwProject getProjectByCode(String proCode);

    /**
     *  getMatWeightByCondition
     *  根据条件获取材料重量 单位吨
     * @param mechanicalPartMatFeeCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/26 20:55
     * @version 1.0
     */
    BigDecimal getMatWeightByCondition(BusMaterialDataModel mechanicalPartMatFeeCondition);

    /**
     *  getNetWeight
     *  根据条件获取净重
     * @param netWeightCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/27 9:10
     * @version 1.0
     */
    BigDecimal getNetWeight(BusGeneralHoursModel netWeightCondition);

    /**
     *  clearCostData
     *  清空数据
     * @param id 主键
     * @return int
     * @author 徐一贺
     * @date 2020/10/27 14:13
     * @version 1.0
     */
    int clearCostData(Integer id);

    /**
     *  getBusBudgetAccountingCostByPramaryKey
     *  根据主键获取清单项信息
     * @param id 主键
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingCostModel
     * @author 徐一贺
     * @date 2020/10/27 16:14
     * @version 1.0
     */
    BusBudgetAccountingCostModel getBusBudgetAccountingCostByPramaryKey(Integer id);

    /**
     *  getBusBudgetAccountingAlgorithmByCondition
     *  根据条件获取算法
     * @param busBudgetAccountingAlgorithm 条件
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingAlgorithm
     * @author 徐一贺
     * @date 2020/10/27 19:48
     * @version 1.0
     */
    BusBudgetAccountingAlgorithm getBusBudgetAccountingAlgorithmByCondition(BusBudgetAccountingAlgorithm busBudgetAccountingAlgorithm);

    /**
     *  updateBusBudgetAccountingAlgorithmSelectiveByCondition
     *  根据条件更新成本项
     * @param busBudgetAccountingAlgorithm 条件
     * @return int
     * @author 徐一贺
     * @date 2020/10/27 19:50
     * @version 1.0
     */
    int updateBusBudgetAccountingAlgorithmSelectiveByCondition(BusBudgetAccountingAlgorithm busBudgetAccountingAlgorithm);

    /**
     *  insertBusBudgetAccountingAlgorithm
     *  新增一条算法记录
     * @param busBudgetAccountingAlgorithm 条件
     * @return int
     * @author 徐一贺
     * @date 2020/10/27 20:09
     * @version 1.0
     */
    int insertBusBudgetAccountingAlgorithm(BusBudgetAccountingAlgorithm busBudgetAccountingAlgorithm);

    /**
     *  findBusGeneralHoursListByCondition
     *  根据条件获取人工工时和辅材数据
     * @param macCutHoursCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusGeneralHoursModel>
     * @author 徐一贺
     * @date 2020/10/28 8:56
     * @version 1.0
     */
    List<BusGeneralHoursModel> findBusGeneralHoursListByCondition(BusGeneralHoursModel macCutHoursCondition);

    /**
     *  findBusDataSourceModelListByCondition
     *  根据条件获取数据源
     * @param macDataSourceCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusDataSourceModel>
     * @author 徐一贺
     * @date 2020/10/28 9:13
     * @version 1.0
     */
    List<BusDataSourceModel> findBusDataSourceModelListByCondition(BusDataSourceModel macDataSourceCondition);

    /**
     *  getMalWeightByCondition
     *  根据条件获取原材料总重 单位吨
     * @param malWeightCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/28 10:24
     * @version 1.0
     */
    BigDecimal getMalWeightByCondition(BusMaterialDataModel malWeightCondition);

    /**
     *  getMacCutHourByPartCondition
     *  根据部位条件获取人工工时
     * @param macCutHourByPartCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/28 10:44
     * @version 1.0
     */
    BigDecimal getHourByPartCondition(BusGeneralHoursModel macCutHourByPartCondition);

    /**
     *  getWeightByPartCondition
     *  根据条件获取热处理总重
     * @param macCutHourByPartCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/29 8:21
     * @version 1.0
     */
    BigDecimal getWeightByPartCondition(BusGeneralHoursModel macCutHourByPartCondition);

    /**
     *  findMacCutAuxMalListByCondition
     *  根据条件获取辅材列表
     * @param macCutHourByPartCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusGeneralHoursModel>
     * @author 徐一贺
     * @date 2020/10/28 10:56
     * @version 1.0
     */
    List<BusGeneralHoursModel> findAuxMalListByCondition(BusGeneralHoursModel macCutHourByPartCondition);

    /**
     *  findBusMachiningHoursModelByCondition
     *  根据条件获取机加工时列表
     * @param macMachiningHoursCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningHoursModel>
     * @author 徐一贺
     * @date 2020/10/28 16:36
     * @version 1.0
     */
    List<BusMachiningHoursModel> findBusMachiningHoursModelByCondition(BusMachiningHoursModel macMachiningHoursCondition);

    /**
     *  findMacOutsourcingCostListByCondition
     *  根据条件获取外购件列表
     * @param macOutsourcingCostCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMaterialDataModel>
     * @author 徐一贺
     * @date 2020/10/29 8:45
     * @version 1.0
     */
    List<BusMaterialDataModel> findMacOutsourcingCostListByCondition(BusMaterialDataModel macOutsourcingCostCondition);

    /**
     *  findMacOverallOutsourcingListByCondition
     *  根据条件获取外协列表
     * @param macOverallOutsourcingCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMaterialDataModel>
     * @author 徐一贺
     * @date 2020/10/29 10:24
     * @version 1.0
     */
    List<BusMaterialDataModel> findMacOverallOutsourcingListByCondition(BusMaterialDataModel macOverallOutsourcingCondition);

    /**
     *  getPackingDataSourceHoursByCondition
     *  根据条件获取总工时
     * @param packingDataSourceHoursCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/30 14:37
     * @version 1.0
     */
    BigDecimal getPackingDataSourceHoursByCondition(BusGeneralHoursModel packingDataSourceHoursCondition);

    /**
     *  getPackingDataSourceTotalPriceByCondition
     *  根据条件获取总单价
     * @param packingDataSourceHoursCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/10/30 14:37
     * @version 1.0
     */
    BigDecimal getPackingDataSourceTotalPriceByCondition(BusGeneralHoursModel packingDataSourceHoursCondition);

    /**
     *  findPackingDataSourceAuxMalListByCondition
     *  根据条件获取辅材列表
     * @param packingDataSourceHoursCondition 条件
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusGeneralHoursModel>
     * @author 徐一贺
     * @date 2020/10/30 14:48
     * @version 1.0
     */
    List<BusGeneralHoursModel> findPackingDataSourceAuxMalListByCondition(BusGeneralHoursModel packingDataSourceHoursCondition);

    /**  getBusBudgetAccountingCostByCondition2 根据条件获取成本项
     * @param wasteCost 条件
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2020/11/19 14:18
     */
    BusBudgetAccountingCostModel getBusBudgetAccountingCostByCondition2(BusBudgetAccountingCostModel wasteCost);

    /**  getBusBudgetAccountingCostByBatIdAndParentCode  根据单据表主键和父级Code获取父级成本项
     * @param param 参数
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2020/11/20 8:40
     */
    BusBudgetAccountingCostModel getBusBudgetAccountingCostByBatIdAndParentCode(BusBudgetAccountingCost param);

    /**  getTotalPriceByBatIdAndParentCode 根据单据表主键和父级Code获取子集总价之和
     * @param matPurFeeCost 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/20 8:43
     */
    BigDecimal getTotalPriceByBatIdAndParentCode(BusBudgetAccountingCostModel matPurFeeCost);
    /**  getTotalNumByBatIdAndParentCode 根据单据表主键和父级Code获取子集总数之和
     * @param matPurFeeCost 参数
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/20 8:43
     */
    BigDecimal getTotalNumByBatIdAndParentCode(BusBudgetAccountingCostModel matPurFeeCost);

    /**  getBusBudgetAccountingCostByParentCodeAndCondition 根据父级ID和条件获取成本项
     * @param matPurFeeCondition 条件
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2020/11/20 8:52
     */
    BusBudgetAccountingCostModel getBusBudgetAccountingCostByParentCodeAndCondition(BusBudgetAccountingCostModel matPurFeeCondition);

    /**  findBusBudgetAccountingCostByParentCodeAndBatId 根据batId和父级Code获取子集列表
     * @param cost 条件
     * @return java.util.List<com.zhongwang.business.gen.entity.BusBudgetAccountingCost>
     * @author 徐一贺
     * @date 2020/11/20 9:33
     */
    List<BusBudgetAccountingCostModel> findBusBudgetAccountingCostByParentCodeAndBatId(BusBudgetAccountingCostModel cost);

    /**  getBusBudgetAccountingBasicInfoConfigByCondition 根据条件获取基础配置信息
     * @param coefficientCondition 条件
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusBudgetAccountingBasicInfoConfigModel
     * @author 徐一贺
     * @date 2020/11/20 18:41
     */
    BusBudgetAccountingBasicInfoConfigModel getBusBudgetAccountingBasicInfoConfigByCondition(BusBudgetAccountingBasicInfoConfigModel coefficientCondition);

    /**  getSubtotalCostByCondition 根据条件获取小计成本项
     * @param subtotalCondition 条件
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingCost
     * @author 徐一贺
     * @date 2020/11/20 18:48
     */
    BusBudgetAccountingCostModel  getSubtotalCostByCondition(BusBudgetAccountingCostModel  subtotalCondition);

    /**  clearShowAccountingByCostCondition 根据条件清空数据
     * @param clearShowAccountingCostCondition 条件
     * @return int
     * @author 徐一贺
     * @date 2020/11/23 16:25
     */
    int clearShowAccountingByCostCondition(BusBudgetAccountingCostModel clearShowAccountingCostCondition);

    /**  getBusCostTemplateList 根据版本ID获取模板列表
     * @param verId 版本ID
     * @return java.util.List<com.zhongwang.business.gen.entity.BusCostTemplate>
     * @author 徐一贺
     * @date 2020/11/23 16:31
     */
    List<BusCostTemplate> getBusCostTemplateList(int verId);

    /**  getTotalPriceByPurCondition 根据条件获取总价
     * @param purCondition 条件
     * @return java.math.BigDecimal
     * @author 徐一贺
     * @date 2020/11/24 9:14
     */
    BigDecimal getTotalPriceByPurCondition(BusBudgetAccountingCostModel purCondition);
    /**  findBusBudgetAccountingBasicInfoConfigTemplateByParam 获取概算预算核算基础信息配置列表
     * @param param 检索参数
     * @return java.util.List<com.zhongwang.business.gen.entity.BusDataSourceTemplate>
     * @author 徐一贺
     * @date 2020/11/27 10:30
     */
    List<BusBudgetAccountingBasicInfoConfigTemplate > findBusBudgetAccountingBasicInfoConfigTemplateByParam(BusBudgetAccountingBasicInfoConfigTemplate param);

    /**  getBusBudgetAccountingBasicInfoConfigTemplateByPrimayKey 根据主键获取概算预算核算基础信息配置信息
     * @param id 主键
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingBasicInfoConfigTemplate
     * @author 徐一贺
     * @date 2020/11/27 10:55
     */
    BusBudgetAccountingBasicInfoConfigTemplate getBusBudgetAccountingBasicInfoConfigTemplateByPrimayKey(Integer id);

    /**  updateBusBudgetAccountingBasicInfoConfigTemplateValueByPrimayKey 根据主键更新概算预算核算基础信息配置信息值
     * @param param 主键和值
     * @return int
     * @author 徐一贺
     * @date 2020/11/27 10:56
     */
    int updateBusBudgetAccountingBasicInfoConfigTemplateValueByPrimayKey(BusBudgetAccountingBasicInfoConfigTemplate param);

    /**  macQuotaConfigList 获取机加定额列表
     * @param param 检索参数
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @exception
     * @author 徐一贺
     * @date 2020/11/27 11:23
     */
    List<BusMachiningEquipmentModel> findMacQuotaConfigList(BusMachiningEquipmentModel param);

    /**  findNameTypeList 获取设备类型列表
     * @param
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/27 12:50
     */
    List<BusMachiningEquipmentModel> findNameTypeList();

    /**  findWorkingProcedureList 获取工序列表
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/27 12:59
     */
    List<BusMachiningEquipmentModel> findWorkingProcedureList();

    /**  findVersionLIst 获取版本号列表
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/27 13:00
     */
    List<BusMachiningEquipmentModel> findVersionLIst();
    /**  findVersionLIst 获取版本号列表待是否默认列
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/27 13:00
     */
    List<BusMachiningEquipmentModel> findVersionLIstForAllInfo();

    /**  getBerofrMacVersion 获取当前价定额表系统默认版本号
     * @return java.lang.String
     * @author 徐一贺
     * @date 2020/11/27 14:04
     */
    String getCurrentMacVersion();

    /**  updateClearIsDefault 取消系统所有版本号变成非系统默认
     * @return java.lang.Integer
     * @author 徐一贺
     * @date 2020/11/27 14:09
     */
    Integer updateClearIsDefault();

    /**  updateIsDefaultByVerId 根据版本号主键改变系统默认版本号
     * @param param 版本号主键
     * @return java.lang.Integer
     * @exception
     * @author 徐一贺
     * @date 2020/11/27 14:08
     */
    Integer updateIsDefaultByVerId(BusBudgetAccountingBasicInfoConfigTemplate param);


    /**  getBusMachiningEquipmentModelByPrimaryKey 根据主键获去机加定额信息
     * @param param 主键
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel
     * @exception
     * @author 徐一贺
     * @date 2020/11/27 14:28
     */
    BusMachiningEquipmentModel getBusMachiningEquipmentModelByPrimaryKey(BusMachiningEquipmentModel param);

    /**  updateBusMachiningEquipmentModelPriceByPrimaryKey 根据主键修改定额
     * @param param 主键和定额
     * @return java.lang.Integer
     * @exception
     * @author 徐一贺
     * @date 2020/11/27 14:34
     */
    Integer updateBusMachiningEquipmentModelPriceByPrimaryKey(BusMachiningEquipmentModel param);

    /**  getVersionByPrimaryKey 根据主键获取版本信息
     * @param id 主键
     * @return com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel
     * @exception
     * @author 徐一贺
     * @date 2020/11/27 14:48
     */
    BusMachiningEquipmentModel getVersionByPrimaryKey(Integer id);

    /**  getNewMachiningQuotaConfigList 获取创建定时需要的数据
     * @return java.util.List<com.zhongwang.business.module.estimateBudgetAccountingManage.model.BusMachiningEquipmentModel>
     * @author 徐一贺
     * @date 2020/11/27 15:09
     */
    List<BusMachiningEquipmentModel> getNewMachiningQuotaConfigList();


    /**  insertBusMachiningEquipmentQuotaVersion 插入新版本机加数据
     * @param versionObject 新版本机加数据
     * @author 徐一贺
     * @date 2020/11/27 19:21
     */
    void insertBusMachiningEquipmentQuotaVersion(BusMachiningEquipmentQuotaVersion versionObject);

    /**  insertBusMachiningEquipment 插入新版本机加相关数据
     * @param busMachiningEquipmentModel 新版本机加相关数据
     * @author 徐一贺
     * @date 2020/11/27 19:33
     */
    void insertBusMachiningEquipment(BusMachiningEquipmentModel busMachiningEquipmentModel);

    /**  getMacQuotaConfigVersionByVersion 根据版本号获取机加工时定额版本号
     * @param version 版本号
     * @return com.zhongwang.business.gen.entity.BusMachiningEquipmentQuotaVersion
     * @exception
     * @author 徐一贺
     * @date 2020/11/30 7:56
     */
    BusMachiningEquipmentQuotaVersion getMacQuotaConfigVersionByVersion(String version);

    /**  getBusBudgetAccountingBasicInfoConfigTemplateByCode 根据配置码获取模板数据
     * @param code 配置码
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingBasicInfoConfigTemplate
     * @exception
     * @author 徐一贺
     * @date 2020/12/1 19:51
     */
    BusBudgetAccountingBasicInfoConfigTemplate getBusBudgetAccountingBasicInfoConfigTemplateByCode(String code);

    /**  basicConfigGetMacVersionList 获取版本列表
     * @author 徐一贺
     * @date 2020/12/1 20:11
     */
    List<BusMachiningEquipmentQuotaVersion> basicConfigGetMacVersionList();

    /**  updateBusMachiningEquipmentQuotaVersionSetDefaultByVersion 根据版本号设置成系统默认机加版本
     * @param value 机加版本号
     * @return java.lang.Integer
     * @exception
     * @author 徐一贺
     * @date 2020/12/1 20:19
     */
    Integer updateBusMachiningEquipmentQuotaVersionSetDefaultByVersion(String value);

    /**  getNumByPurCondition 根据条件获取总数量
     * @param cutCondition 条件
     * @return java.math.BigDecimal
     * @exception
     * @author 徐一贺
     * @date 2020/12/4 12:40
     */
    BigDecimal getNumByPurCondition(BusBudgetAccountingCostModel cutCondition);

    /**  getPriceByPurCondition 根据条件获取平均单价
     * @param purCondition 条件
     * @return java.math.BigDecimal
     * @exception
     * @author 徐一贺
     * @date 2020/12/4 14:48
     */
    BigDecimal getPriceByPurCondition(BusBudgetAccountingCostModel purCondition);

    /**  updateBusBudgetAccountingCostByParamPrimaryKey 根据主键更新清单索要修改的成本项
     * @param model
     * @return int
     * @exception
     * @author 徐一贺
     * @date 2020/12/8 18:49
     */
    int updateBusBudgetAccountingCostByParamPrimaryKey(BusBudgetAccountingCostModel model);

    /**  getBusBudgetAccountingBasicInfoConfigByPrimaryKey 根据主键获取基础信息配置
     * @param id
     * @return com.zhongwang.business.gen.entity.BusBudgetAccountingBasicInfoConfig
     * @author 徐一贺
     * @date 2020/12/28 14:05
     */
    BusBudgetAccountingBasicInfoConfig getBusBudgetAccountingBasicInfoConfigByPrimaryKey(Integer id);

    /**  updateBusMachiningHoursByCondition 更改机加版本号
     * @param macCondition
     * @return void
     * @author 徐一贺
     * @date 2020/12/28 14:07
     */
    void updateBusMachiningHoursByCondition(BusMachiningHours macCondition);

    /**  getMacQuotaConfigVersionByCode 根据Code获得实体
     * @param value
     * @return com.zhongwang.business.gen.entity.BusMachiningEquipmentQuotaVersion
     * @author 徐一贺
     * @date 2020/12/28 14:42
     */
    BusMachiningEquipmentQuotaVersion getMacQuotaConfigVersionByCode(String value);

    /**
     * @methodName: updateMatOtherInfoToClaer
     * @description: 清除掉其他的单价和数量
     * @param: cost
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18941916590
     * @designer： 陈欣，孔祥鑫
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/2 14:20
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateMatOtherInfoToClaer(BusBudgetAccountingCostModel cost);

    /**
     * @methodName: getCalculationTotalWeightByCondition
     * @description: 根据条件获取总重
     * @param: calculationTotalWeightCondition
     * @return： java.math.BigDecimal
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/8 8:21
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    BigDecimal getCalculationTotalWeightByCondition(BusGeneralHours calculationTotalWeightCondition);
}
